package test3.controller;

import test3.bean.Admini;
import test3.bean.Employee;

import java.util.List;
import java.util.Map;

public interface PageController {

    /**
     * 得到页面需要显示的数据，当需要显示视图需要首先调用该系列的方法！
     * @param pageNo 显示页号
     * @param pageSize 一个页面显示的数量
     * @return 返回需要显示的集合
     */
    public List<Employee> showEmployees(Integer pageNo,Integer pageSize);

    public List<Employee> showEmployees(Integer pageNo);

    public List<Employee> showEmployees();

    /**
     * 显示下一页的数据,如果是当前页已经到达最大页，则返回null
     * @return 返回下一页的数据
     */
    public List<Employee> showNextPage();

    /**
     * 显示上一页的数据,如果当前页已经是第一页，返回null
     * @return 返回上一页的数据
     */
    public List<Employee>showPrePage();

    /**
     * 更新或者插入一个员工的数据,如果e为null，则返回null
     * @param e
     */
    public List<Employee> updateOrInsert(Employee e);

    /**
     * 删除一个员工的信息,如果e为null，则返回null
     * @param id 需要删除的员工的id号
     */
    public List<Employee> delete(int id);

    /**
     *
     * @param id 需要查询的员工的id
     * @return 查询到的结果员工信息  如果没有则返回null
     */
    public Employee queryById(Integer id);

    /**
     * 将所有的数据写入文件，在程序退出的时候需要调用一次
     */
    public void exit();

    /**
     * 用于登录用户的信息
     * @admini
     * @return 返回登陆的结果，成功与失败
     */
    public boolean login(Admini admini);

    /**
     * 存储一个管理员的数据
     * @param admini
     */
    public void addAdmir(Admini admini);

}
